home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Utility Spectacular / Developer / p2c1.20-a5.appl Folder / p2c 1.20a5 / p2c Preferences < prev    next >
Encoding:
Text File  |  1992-11-19  |  54.7 KB  |  1,644 lines  |  [TEXT/MPS ]

  1. # MPW configuration file for "p2c" 1.20, the Pascal to C translator
  2. # Adapted by G. Sawitzki <gs@statlab.uni-heidelberg.de>
  3. # Adapted from:
  4. # Standard configuration file for "p2c" 1.20, the Pascal to C translator
  5. #    Copyright (C) 1989, 1990, 1991 Free Software Foundation.
  6. #    Author: Dave Gillespie.
  7. #    Author's address: daveg@csvax.caltech.edu; 256-80 Caltech/Pasadena CA 91125.
  8.  
  9. # This program is free software; you can redistribute it and/or modify
  10. # it under the terms of the GNU General Public License as published by
  11. # the Free Software Foundation (any version).
  12.  
  13. # This program is distributed in the hope that it will be useful,
  14. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.    See the
  16. # GNU General Public License for more details.
  17.  
  18. # You should have received a copy of the GNU General Public License
  19. # along with this program; see the file COPYING.    If not, write to
  20. # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  
  22.  
  23. # Note that all options except "Naming Conventions" and certain library
  24. # functions may be left blank or omitted entirely; the defaults are intended
  25. # to encompass a wide variety of "reasonable" implementations of C.
  26. # Option names are case-insensitive.
  27.  
  28. # The single-valued options can all be overridden by a later line in
  29. # this file, or in your own "p2crc" or ".p2crc" file, or in comments
  30. # in the input file.    To override an explicit value with the original
  31. # default, use the word "def".
  32.  
  33. # Some options define printf-like format strings.    These support all the
  34. # usual formatting codes, with additional features for string formatting.
  35. # The following extra "flag" characters are defined for %s:
  36. #    _    Convert to lower case
  37. #    ^    Convert to upper case
  38. #    _^    Convert to lower except capitalize first char and after non-letters
  39. #    ~    Insert '_' between lower case and following upper case letters
  40. #    !    Remove '_' and other non-alphanumeric characters
  41. #    ?    Negates _ and ^ flags if name contains mixed case
  42. #    R    Remove file name suffix (e.g., "foo.pas" => "foo")
  43. #    /    Remove path name (prefix ending in /, \, ], or :)
  44. # Also, where a format includes several "%" arguments, they may
  45. # appear in either order in the string. When two string args are
  46. # involved, "%s" will refer to one and "%S" to the other.    The
  47. # notation %H expands to the p2c home directory name, as in "%Hp2crc".
  48. # The notation %I expands to the MPW shell variable {PInterfaces}.
  49.  
  50. # Many options simply refine defaults controlled by the Language,
  51. # AnsiC, and Target options.
  52.  
  53.  
  54.  
  55.  
  56. Debug    # Level of debugging output
  57.  
  58. TokenTrace    # Additional debugging output
  59.  
  60.  
  61. Include # Additional p2crc files to be included
  62. Include # %s=program name
  63.  
  64. CopySource    # 1=copy Pascal source code into output
  65.     # file, #ifdef'd out.
  66.  
  67.  
  68.  
  69.  
  70. # INPUT LANGUAGE
  71.  
  72. Language    MPW # Known languages:
  73.     #    HP (default; Pascal Workstation version)
  74.     #    MODCAL (HP's advanced Pascal)
  75.     #    HP-UX (almost same as HP)
  76.     #    TURBO (vers 5.0 for IBM PC)
  77.     #    OREGON (Oregon Software Pascal-2 V2.1)
  78.     #    VAX (VAX/VMS Pascal)
  79.     #    MODULA (Modula-2)
  80.     #    UCSD (almost same as TURBO)
  81.     #    MPW (MPW Pascal 2.0 for the Mac)
  82.     #    BERK (SUN Berkeley Pascal)
  83.  
  84. Modula2 # 1=Use modula-2 block structure (IF-END)
  85.     # 0=Use Pascal block structure (IF-BEGIN-END)
  86.     # default=1 if Language=MODULA, 0 for others
  87.  
  88. Integer16    # 1=assume Pascal integers are 16 bits
  89.     # 0=assume Pascal integers are 32 bits
  90.     # 2=use native C "int" for Pascal "integer"
  91.     # default=0 for HP/Oregon/VAX, 1 for Turbo/MPW
  92.  
  93. DoubleReals # 1=convert Pascal real to C double
  94.     # 0=convert Pascal real to C float
  95.     # default=1 for Turbo and HP-UX, 0 for HP
  96.  
  97. UnsignedChar    # 1=Pascal char must be unsigned
  98.     # 0=Pascal char must be signed
  99.     # 2=doesn't matter; use native C "char"
  100.     # default=unsigned, but use native "char"
  101.  
  102. NeedSignedByte    # 1=use "signed char" even if not available
  103.     # 0 or default=use "short" if not sure
  104.  
  105. PascalEnumSize    # Size in BITS of a Pascal enum type.
  106.     # Default=according to Language.
  107.  
  108. NestedComments    # 1=Pascal comments may be nested
  109.     # 2=comments don't nest, but { must match }
  110.     # 0=comments are unnested, unmatched
  111.     # default=0 in HP/MODCAL, 2 in Turbo
  112.  
  113. ExternWords external    # Words analogous to "forward" for declaring
  114. ExternWords extern    # procedures or functions external.
  115. ExternWords fortran
  116.  
  117. CExternWords    nonpascal    # Words like ExternWords but for which any
  118. CExternWords    # leading and/or trailing "_" is removed
  119. CExternWords    # from the Pascal function/variable names.
  120.  
  121. ImportAll    # 1=read all of each imported file, in case
  122.     #    file contains several modules/units
  123.     # 0=read only interface text of first module
  124.     # default=1 in HP/MODCAL, 0 in others
  125.  
  126. ImplModules # 1=MODULE starts a block like PROGRAM.
  127.     # 0=MODULEs have export/implement sections.
  128.  
  129. PascalSignif    # Number of significant characters in Pascal
  130.     # identifiers; default=unlimited
  131.  
  132. PascalCaseSens    # 1=Pascal idents are case-sensitive,
  133.     #    keywords and predef words are u.c. or l.c.
  134.     # 2=case-sens, keywords and predef words u.c.
  135.     # 3=case-sens, keywords and predef words l.c.
  136.     # 0=not case-sensitive
  137.     # default=2 in Modula-2, otherwise 0
  138.  
  139. DollarIdents    # 1='$' is legal in Pascal and C identifiers
  140.     # 2=convert '$' (and '%') in idents into C '_'
  141.     # 0='$' is for HP directives/Turbo hex consts
  142.     # default=1 for Oregon & VAX Pascal only
  143.  
  144. IgnoreNonAlpha    # 1=ignore _, $, % in Pascal identifiers
  145.     # 0=retain them (subject to DollarIdents)
  146.     # default=1 for UCSD, 0 otherwise
  147.  
  148. InputTabSize    # Number of characters per tab stop in input
  149.     # file, for reading Pascal indentation.
  150.     # Default=8.
  151.  
  152.  
  153.  
  154. # TARGET LANGUAGE
  155.  
  156. AnsiC    # 1=use all Ansi C features and definitions
  157.     # 2=use GNU C language extensions
  158.     # 0=use only original K&R features
  159.     # default=use "modern" Unix-like C
  160.  
  161. C++ = 1 # 1=use C++ extensions,
  162.     # 0=use straight C,
  163.     # default=generate code that works on either
  164.  
  165. Void*    # 1=use "void *" for anyptr's
  166.     # 0=use "char *" for anyptr's
  167.     # default=1 if AnsiC=1 or C++=1
  168.  
  169. HasSignedChar    # 1="signed char" and "signed int" are legal
  170.     # 0="signed ..." is not supported
  171.     # default=1 if AnsiC=1
  172.  
  173. CastNull    # 1=must type-cast NULL into specific types
  174.     # 0 or default=don't cast NULL
  175.  
  176. CopyStructs # 0=no implicit copying of structs allowed
  177.     # 1=can assign but not pass to/from funcs
  178.     # 2=struct assignment and parameters only
  179.     # 3=can assign, pass, and return structs
  180.     # default=3 unless AnsiC=0
  181.  
  182. VariableArrays    # 1=allows variable-length arrays
  183.     # 0=array sizes must be constant
  184.     # default=1 for Gnu C, 0 otherwise
  185.  
  186. InitPACStrings    # 1=can init char array with full-sized string
  187.     # 0=string literal initializer always has \0
  188.     # default=1 if AnsiC=1, else 0
  189.  
  190. ReUseFieldNames # 1=can use same field name in many structs
  191.     # 0=field names must be globally unique
  192.     # default=1
  193.  
  194. UseVExtern    # 1 or default=assume strict ANSI linkage
  195.     # 0=UNIX-like "common" variable linkage
  196.  
  197. UseAnyptrMacros # 1=use Anyptr, Signed, Static, etc. macros
  198.     # 0=use true C constructs as specified above
  199.     # 2=use Static, Local, Char only
  200.     # default=2 if AnsiC=1, else 1
  201.  
  202. UsePPMacros # 1=use PP and PV macros for prototypes
  203.     # 0=do not use these macros for prototypes
  204.     # 2=use them only for external/forward
  205.     # default=0 if AnsiC=1, else 2
  206.  
  207.  
  208.  
  209. # TARGET MACHINE
  210.  
  211. Target    # machine name, if any. Specify this or answer
  212.     # the following questions to tailor the output
  213.     # program to a particular architecture.
  214.     # Machines known:
  215.     #    HPUX-300, SUN-68K, BSD-VAX, BSD, SYSV
  216.  
  217. SignedChar    # 1=char is signed, 0=char is unsigned,
  218.     # default=don't know
  219.  
  220. SignedField # 1="int" bit-fields in structs are signed,
  221.     # 0="int" bit-fields are unsigned,
  222.     # default=don't know but probably signed
  223.     # 2=don't know, be paranoid
  224.  
  225. SignedShift # 1=">>" does arithmetic (signed) shift,
  226.     # 0=">>" does logical shift even for ints,
  227.     # default=don't know but probably signed
  228.     # 2=don't know, be paranoid
  229.  
  230. CharSize    # size in bits of a char, default at least 8
  231. ShortSize    # size in bits of a short, default at least 16
  232. IntSize # size in bits of an int, default at least 16
  233. LongSize    # size in bits of a long, default at least 32
  234. PtrSize # size in bits of a pointer.    If not all
  235.     # pointers have same size, must leave blank.
  236. FloatSize    # size in bits of a float
  237. DoubleSize    # size in bits of a double
  238. EnumSize    # size in bits of an enum
  239.  
  240. Size_T_Long # 1=Ansi "size_t" type is long
  241.     # 0=Ansi "size_t" type is int
  242.     # default=don't know, probably long
  243.  
  244.  
  245.  
  246. # BRACES AND PLACEMENT OF STATEMENTS
  247.  
  248. NullStmtLine    # 1=put null statements on their own lines,
  249.     # 0 or default=write "while (x) ;"
  250.  
  251. BracesAlways    # 1=use {braces} always,
  252.     # 0=never unless needed,
  253.     # default=use nice braces
  254.  
  255. BraceLine    # 1=always put open braces on a new line,
  256.     # 0=never put open brace on new line if poss,
  257.     # default=0 for sub-stmts, 1 for func bodies
  258.  
  259. BraceCombine    # 1=don't put newline after '{' if possible
  260.     # 0 or default=open brace always ends a line
  261.  
  262. BraceElse    # 1=put { } on both "then" and "else" if would
  263.     #    put them on either, default=independent
  264.  
  265. BraceElseLine    # 0 or default=write "} else {"
  266.     # 1=write "}\nelse {", 2=write "} else\n{"
  267.     # 3=write "}\nelse\n{"
  268.  
  269. ElseIf    # 1=always write "else if" on same line
  270.     # 0=always write "else\nif"
  271.     # default=use "else if" only when input used it
  272.  
  273. NewLineFuncs    # 1=write "static int\nfoo()" in function defs
  274.     # 0 or default=write "static int foo()"
  275.  
  276.  
  277.  
  278. # INDENTATION
  279.  
  280. PhysTabSize # Spacing of tab-character tabs; default=8.
  281.     # 0=do not use tabs in output file.
  282.  
  283. Indent    # Basic indentation delta; default=+2.
  284.     # Indentation deltas specify an amount by which
  285.     # to change indentation; +n or -n specifies a
  286.     # relative adjustment, n specifies an absolute
  287.     # amount of indentation where 0=far left.
  288.  
  289. BlockIndent # Indentation delta for statements enclosed
  290.     # in braces; applied after Indent.    Default=+0.
  291.  
  292. SwitchIndent    # Indentation delta for switch statement body;
  293.     # applied after Indent. Default=+0.
  294.  
  295. CaseIndent    # Indentation delta for case labels; applied
  296.     # after Indent and SwitchIndent.    Default=-2.
  297.  
  298. LabelIndent # Indentation delta for statement labels.
  299.     # Default is 0 (absolute).
  300.  
  301. OpenBraceIndent # Indentation delta for the open brace that
  302.     # begins a block.    Used only if the brace is
  303.     # on its own line.    Default=+0.
  304.  
  305. CloseBraceIndent    # Indentation delta for the close brace that
  306.     # ends a block. Default=+0.
  307.  
  308. FuncArgIndent    # Indentation delta for function arguments.
  309.     # Default is 0.
  310.  
  311. BodyIndent    # Indentation delta for the body of a function;
  312.     # applied after Indent. Default=+0.
  313.  
  314. FuncOpenIndent    # Indentation delta for the open brace that
  315.     # begins a function body.    Default=+0.
  316.  
  317. FuncCloseIndent # Indentation delta for the close brace that
  318.     # ends a function body. Default=+0.
  319.  
  320. StructIndent    # Indentation delta for "struct" declarations;
  321.     # applied after Indent. Default=+0.
  322.  
  323. StructInitIndent    # Indentation delta for struct and array
  324.     # initializers; applied after Indent.
  325.     # Default=+0.
  326.  
  327. ExtraInitIndent # Indentation delta for nested struct/array
  328.     # initializers; not combined with Indent.
  329.     # Default=+2.
  330.  
  331. ExtraIndent # Extra indentation for broken lines if
  332.     # indenting by nesting order is too much;
  333.     # default=+2:
  334.     #    long_function_name(arguments,
  335.     #    more_arguments);
  336.     #    1234
  337.  
  338. BumpIndent    # Extra indentation for subexpressions which
  339.     # coincide with next statement's indentation
  340.     # in a visually confusing way:
  341.     #    if (foo &&
  342.     #    bar)    <- this gets BumpIndent
  343.     #    spam();
  344.     # May be pos, neg or zero.    Default=+1.
  345.  
  346. ConstIndent # Target column for #defines; default=24.
  347.     # A positive relative value (e.g., +3) means
  348.     # to use that many spaces always rather than
  349.     # tabbing to a fixed column.    A value of the
  350.     # form, e.g., *5 means to tab to the next
  351.     # multiple-of-5 column.
  352.  
  353. CommentIndent    # Target column (as in ConstIndent) for
  354.     # comments trailing statements. Another
  355.     # syntax is, e.g., "-80" which means to
  356.     # right-justify comments on an 80-column line.
  357.     # Default=+3.
  358.  
  359. BraceCommentIndent    # Indentation for trailing comments on
  360.     # braces.    Default=+2.
  361.  
  362. DeclCommentIndent    # Target column for comments trailing
  363.     # declarations. Default=CommentIndent.
  364.  
  365. CommentOverIndent    # If line is too long to indent nicely by
  366.     # CommentIndent or BraceCommentIndent, start
  367.     # a new line and indent according to this
  368.     # indentation, either n, +n, or -n. Zero means
  369.     # never to start a new line.    Default=+4.
  370.  
  371. MinSpacing    # Minimum spacing allowed for things like
  372.     # absolute ConstIndent spacing. Default=2,
  373.     # i.e., ConstIndent will always insert at
  374.     # least two spaces, even on long lines.
  375.  
  376. MinSpacingThresh    # If specified, threshhold below which
  377.     # MinSpacing is used.    (Default=MinSpacing.)
  378.     # For example, if MinSpacingThresh=1:
  379.     #    foo /*comment*/ (CommentIndent=5 used)
  380.     #    spam /*comment*/    (CommentIndent=5 used)
  381.     #    thing    /*comment*/ (MinSpacing=2 used)
  382.  
  383.  
  384.  
  385. # LINE BREAKING
  386.  
  387. LineWidth    # Target max output line width; default=78.
  388.  
  389. MaxLineWidth    # Absolute max output line width; default=90.
  390.  
  391. OverWidePenalty # Penalty for line lengths > LineWidth.
  392.     # Default=25.    (Penalties are real numbers.)
  393.  
  394. OverWideExtraPenalty    # Additional penalty multiplied by
  395.     # number-of-chars-too-long squared.
  396.     # Default=1.    Total over-wide penalty is
  397.     #    OW = max(OWP + N^2*OWEP, 0).
  398.  
  399. EarlyBreakPenalty    # Penalty for breaking at early break-points
  400.     # among those at a given nesting level.
  401.     # Default=1.    If N=number of possible break
  402.     # points before this one in this nesting,
  403.     #    EB = -N*EBP.
  404.  
  405. CommaBreakPenalty    # Penalty for breaking lines after a comma.
  406.     # Default=10.
  407.  
  408. CommaBreakExtraPenalty    # Additional penalty multiplied by nesting
  409.     # level of (number of parens enclosing) comma.
  410.     # Default=5.    Total comma-break penalty is
  411.     #    B = max(P + CBP + N*CBEP, 1.0)
  412.     # where
  413.     #    P = OW + EB + SIP + IP    (defined elsewhere)
  414.  
  415. SpecialArgBreakPenalty    # Penalty for breaking lines after a comma
  416.     # which follows a "special" argument, such
  417.     # as the format string of a printf. Default=5.
  418.  
  419. OpBreakPenalty    # Penalty for breaking at an operator (like +).
  420.     # Analogous to CommaBreakPenalty; default=25.
  421.  
  422. OpBreakExtraPenalty # Additional penalty multiplied by nesting
  423.     # level of the operator.    Default=20.
  424.  
  425. LogBreakPenalty # Penalty for breaking at an && or || operator.
  426.     # Default=5.
  427.  
  428. LogBreakExtraPenalty    # Additional penalty multiplied by nesting
  429.     # level of the logical operator.    Default=1.
  430.  
  431. RelBreakPenalty # Penalty for breaking at a relational
  432.     # operator. Default=20.
  433.  
  434. RelBreakExtraPenalty    # Additional penalty multiplied by nesting
  435.     # level of the relational op.    Default=10.
  436.  
  437. ExHyphenPenalty # Additional penalty for breaking a line just
  438.     # after a minus sign.    Default=10. :-)
  439.  
  440. AssignBreakPenalty    # Penalty for breaking at an assignment
  441.     # operator. Default=50.
  442.  
  443. AssignBreakExtraPenalty # Additional penalty multiplied by nesting
  444.     # level of the assignment.    Default=30.
  445.  
  446. QMarkBreakPenalty    # Penalty for breaking lines at the "?" of
  447.     # a "?:" operator.    Default=50. (Colons
  448.     # get the regular OpBreakPenalty.)
  449.  
  450. QMarkBreakExtraPenalty    # Additional penalty multiplied by nesting
  451.     # level of the "?:" operator.    Default=30.
  452.  
  453. ParenBreakPenalty    # Penalty for breaking after an open paren
  454.     # in a function call:
  455.     #    long_function_name(
  456.     #    very_long_argument);
  457.     # Default=25.
  458.  
  459. ParenBreakExtraPenalty    # Additional penalty multiplied by nesting
  460.     # level of the parentheses. Default=10.
  461.  
  462. MoreBreakPenalty    # Adjustment to CommaBreakPenalty, etc.,
  463.     # if it is the second or later break in the
  464.     # same nesting. (E.g., if two or more commas
  465.     # of a function call are broken.)    Default=-5.
  466.  
  467. MoreBreakExtraPenalty    # Adjustment to CommaBreakExtraPenalty, etc.,
  468.     # as in MoreBreakPenalty.    Default=-3.
  469.  
  470. WrongSidePenalty    # Extra penalty for breaking on the less
  471.     # preferred side of an operator (see BreakArith
  472.     # et al below). Default=10.
  473.  
  474. ExtraIndentPenalty    # Penalty for indenting by ExtraIndent instead
  475.     # of according to nesting order.    If negative,
  476.     # -EIP is penalty for *not* using ExtraIndent.
  477.     # Default=30.
  478.  
  479. BumpIndentPenalty    # Penalty for using BumpIndent for identation.
  480.     # Default=10.
  481.  
  482. NoBumpIndentPenalty # Penalty for not using BumpIndent when it
  483.     # ought to have been used.    Default=25.
  484.  
  485. IndentAmountPenalty # Penalty for indentation; for a line indented
  486.     # N spaces (beyond the indentation of the
  487.     # statement as a whole),
  488.     #    IP = N*IAP.
  489.     # Default=0.5.
  490.  
  491. SameIndentPenalty    # Penalty for indenting two successive lines
  492.     # the same even though they belong to different
  493.     # nesting levels:
  494.     #    foo = x +
  495.     #    y *
  496.     #    z
  497.     # Default=5.
  498.  
  499. MaxLineBreakTries    # Limit to the number of line breaking
  500.     # alternatives to be tried. Default=5000.
  501.  
  502. AllOrNoneBreak    # List of functions for which arguments must
  503. AllOrNoneBreak    # be written all on one line or all on separate
  504. AllOrNoneBreak    # lines.    (A given function may have only one
  505. AllOrNoneBreak    # of this and the following break properties.)
  506.  
  507. OneSpecialArg    printf    # List of functions like printf for which the
  508. OneSpecialArg    # first argument is "special", remaining args
  509. OneSpecialArg    # are uniform.
  510.  
  511. TwoSpecialArgs    sprintf # List of functions like fprintf for which the
  512. TwoSpecialArgs    fprintf # first two arguments are "special".
  513.  
  514. ThreeSpecialArgs    # List of functions for which the first three
  515. ThreeSpecialArgs    # arguments are "special".
  516.  
  517. BreakArith    # Options string for how to break lines at
  518.     # arithmetic operators. One or more of:
  519.     #    L    Break on left side of operator.
  520.     #    R    Break on right side of operator.
  521.     #    H    Same as L, but use "hanging" indent.
  522.     #    N    No breaking.
  523.     #    L>R Break either way, L preferred (or R<L).
  524.     #    R>L Break either way, R preferred (or L<R).
  525.     #    L=R Break either way equally (or LR).
  526.     #    A    (with above) Use all-or-none breaking.
  527.     # Default is R.
  528.  
  529. BreakRel    # Same for relational ops (==, <, etc.)
  530.  
  531. BreakLog    # Same for logical operators && and ||
  532.  
  533. BreakDot    # Same for dot operators . and ->
  534.  
  535. BreakAssign # Same for assignments.
  536.  
  537. For_AllOrNone    # 1 or default=all-or-none breaking of the
  538.     # three clauses of a "for" statement.    0=plain.
  539.  
  540.  
  541.  
  542. # COMMENTS AND BLANK LINES
  543.  
  544. NoBanner    # 1=omit "From input file..." comment
  545.     # 0 or default=put this command at top of file
  546.  
  547. EatComments # 1=don't copy any comments into C code
  548.     # 2=don't copy comments inside procedures
  549.     # 0 or default=keep all comments
  550.  
  551. SpitComments    1    # 1=spit out all comments between procedures
  552.     # 0 or default=try to attach comments to code
  553.  
  554. SpitOrphanComments    1    # 1=spit out comments whose orig stmts are lost
  555.     # 0 or default=attach orphans to nearby code
  556.  
  557. CommentAfter    # 1=assume comments follow statements
  558.     # 0 or default=assume comments precede stmts
  559.     # (in case statements are rearranged.)
  560.  
  561. BlankAfter    # 1 or default=assume blank lines follow stmts
  562.     # 0=assume blanks precede statements
  563.  
  564. MajorSpacing    # Minimum number of blank lines between major
  565.     # sections of code, default=2.
  566.  
  567. MinorSpacing    # Minimum number of blank lines between minor
  568.     # sections, default=1.
  569.  
  570. FuncSpacing # Minimum number of blank lines between global
  571.     # functions, default=2.
  572.  
  573. MinFuncSpacing    # Minimum number of blank lines separating
  574.     # sub-procedures, default=1.
  575.  
  576. EatNotes    # Suppress any notes whose text contains these
  577. EatNotes    # words.    Example: "EatNotes Spam [216]"
  578. EatNotes    # suppresses notes with "Spam" or "[216]".
  579.  
  580.  
  581.  
  582. # SPECIAL COMMENTS
  583.  
  584. FixedComment    FIXED    # Comment for fixed upper limit of FOR loops:
  585.     #    for i:=1 to N do {FIXED}
  586.     # will suppress use of a FORLIM for N.
  587.     # Case-sensitive; no spaces allowed.
  588.  
  589. PermanentComment    PERMANENT # Comment for permanently imported modules,
  590.     # such as "system".
  591.  
  592. InterfaceComment    INTF-ONLY # Comment for include files which are to be
  593.     # treated as unit interface text, i.e., are
  594.     # to be read without generating C code.
  595.  
  596. EmbedComment    EMBED    # Comment for embedded C code in Pascal:
  597.     #    {EMBED
  598.     #    printf("stuff\n");
  599.     #    }
  600.     # Use \[ \] for curly braces within embedded
  601.     # code. May appear in any context where
  602.     # comments are used.
  603.  
  604. SkipComment SKIP    # Comment for code to skip in p2c only:
  605.     #    {SKIP} writeln('Not in p2c'); {NOSKIP}
  606.     # {SKIP} ... {NOSKIP} sections can be nested.
  607.  
  608. NoSkipComment    NOSKIP    # Comment for code to skip except in p2c:
  609.     #    {NOSKIP writeln('Only in p2c'); }
  610.     # Can be used in if-then-else fashion:
  611.     #    {SKIP} foo; {NOSKIP bar; }
  612.     # {NOSKIP ... } sections can not be nested.
  613.  
  614. SignedComment    SIGNED    # Type annotation: var c : {SIGNED} char;
  615.  
  616. UnsignedComment UNSIGNED    # Type annotation: type uc = {UNSIGNED} char;
  617.  
  618.  
  619.  
  620.  
  621. # STYLISTIC OPTIONS
  622.  
  623. ExtraParens # 1=use many parentheses for readability,
  624.     # 2=use even more parentheses,
  625.     # 0=use minimal parens,
  626.     # default=use nice parens
  627.  
  628. BreakAddParens    # 1=always add parens for operators broken
  629.     # across lines. 0=never, default=nice parens
  630.  
  631. ReturnParens    # 1=write "return (x)"
  632.     # 0=write "return x"
  633.     # default=omit parens for trivial expressions
  634.  
  635. SpaceExprs    # 1=use many spaces in expressions,
  636.     # 0=use minimal spaces in expressions,
  637.     # default=use nice spacing
  638.  
  639. SpaceFuncs    # 1=write a space after function name in call
  640.     # 0 or default=no space: f(x)
  641.  
  642. SpaceCommas # 1 or default=one space after commas: f(x, y)
  643.     # 0=no space after commas: f(x,y)
  644.  
  645. ImplicitZero    # 1=generate "if (x)" rather than "if (x!=0)"
  646.     # 0=always generate explicit comparisons
  647.     # default=only with strcmp and other idioms
  648.  
  649. StarIndex    # 1=always use "*a"
  650.     # 0=always use "a[0]"
  651.     # default=use "*a" only in common idioms
  652.  
  653. AddIndex    # 1=always use "a + n"
  654.     # 0=always use "&a[n]"
  655.     # default=use "a+n" only in common idioms
  656.  
  657. StarArrays    # 1 or default=write "f(int *a)" for array a
  658.     # 0=write "f(int a[10])"
  659.     # 2=write "f(int a[])"
  660.  
  661. StarFunctions    # 1=write "(*fp)(x,y)" to call thru func ptr
  662.     # 0=write "fp(x,y)"
  663.     # default=1 unless AnsiC=1
  664.  
  665. PostIncrement    # 1 or default=write i++ preferentially
  666.     # 0=write ++i preferentially
  667.  
  668. CaseSpacing # Number of blank lines between CASE sections,
  669.     # default=0.
  670.  
  671. CaseTabs    # 0 or default=put each CASE on its own line.
  672.     # Else this is an amount by which to space
  673.     # cases on same line, either +n or *n in the
  674.     # style of ConstIndent.
  675.  
  676. CaseLimit    # Maximum number of options in a CASE subrange
  677.     # that will be expanded out in-line; more than
  678.     # this moves to an "if" in the default clause.
  679.     # Default=9.
  680.  
  681. UseCommas    # 1=use comma operator when convenient
  682.     # 0=do not use comma operator
  683.     # default=use comma operator when necessary
  684.  
  685. UseReturns    # 1 or default=introduce "return" statements
  686.     # 0=do not rearrange to use "return"
  687.  
  688. ReturnLimit # Need at least this many statements in an
  689.     # "if" block before "return" rearrangement;
  690.     # default=3
  691.  
  692. UseBreaks    # 1 or default=introduce "break"/"continue"
  693.     # 0=do not use "break" and "continue"
  694.  
  695. BreakLimit    # Need at least this many statements in an
  696.     # "if" block before "break" rearrangement;
  697.     # default=2
  698.  
  699. ContinueLimit    # Need at least this many statements in an
  700.     # "if" block before "continue" rearrangement;
  701.     # default=5
  702.  
  703. InfLoopStyle    # 0 or default=follow the source file
  704.     # 1=use "for (;;) ..." for all infinite loops
  705.     # 2=use "while (1) ..."
  706.     # 3=use "do ... while (1)"
  707.  
  708. NullChar    # 1 or default=write '\0' for null character
  709.     # 0=write 0 for null character constant
  710.  
  711. HighCharInt # 1 or default=write '\200' as 128 and above
  712.     # 0=write all char consts as characters
  713.  
  714. MixVars # 1=mix all vars of same base type: int a,b;
  715.     # 0=never mix variables: int a; int b;
  716.     # default=mix only adjacent variables
  717.  
  718. MixTypes    # 1=mix all var types: int a,*b,c[5];
  719.     # 0=never mix variables with different types
  720.     # default=pointers only: int a,*b; int c[5];
  721.  
  722. MixFields    # 1=mix bit-fields just like other vars
  723.     # 0=only one bit-field per declaration
  724.     # default=1
  725.  
  726. MixInits    # 1=always mix variables with initializers
  727.     # 0=never mix variables with initializers
  728.     # default=mix with-inits with other with-inits
  729.  
  730. MainLocals    # 1 or default=make globals local to main if poss
  731.     # 0=globals are always made global
  732.  
  733.  
  734.  
  735. # CODING OPTIONS
  736.  
  737. InitialCalls    # Initial function calls (or other brief C
  738. InitialCalls    # statements) to put at front of main program.
  739. InitialCalls    # E.g.: InitialCalls setup_buffer()
  740.  
  741. ExpandIncludes    # 1 or default=expand include files into output
  742.     # 0=convert Pascal include to #include
  743.  
  744. CollectNest # 1 or default=collect sub-procs, emit at end.
  745.     # 0=emit sub-procedures one by one; this will
  746.     #    produce bad code but is useful with
  747.     #    ExpandIncludes=0.
  748.  
  749. ShortCircuit    # 1=use &&, 0=use & for boolean AND, also OR.
  750.     # default=1 for Turbo/HP-UX, 0 for HP Pascal
  751.     #    may be overridden by {$B} / $partial_eval$
  752.  
  753. ShortOpt    # 1 or default=optimize a&b to a&&b if equiv
  754.     # 0=always use a&b, depending on ShortCircuit
  755.  
  756. ElimDeadCode    # 1 or default=eliminate unreachable code
  757.     # 2=even eliminate "if (false)" statements
  758.     # 0=leave unreachable code in place
  759.  
  760. FoldConstants    # 1=instantiate non-structure const's in-line
  761.     #    (applies to int, char, boolean, enum, real)
  762.     # 0 or default=use #define's for constants
  763.     # 0 causes constant to be completely symbolic;
  764.     # default sometimes instantiates if convenient.
  765.     # A constant is folded if FoldConstants=1
  766.     # either when the const was defined, or when
  767.     # it was referenced.
  768.  
  769. FoldStrConstants    # 1=instantiate string const's in-line, as above
  770.     # 0 or default=use #define's for string const's
  771.  
  772. CharConsts    # 1 or default=const a='X' => #define a 'X'
  773.     # 0=const a='X' => #define a "X"
  774.     # (either always works---aesthetic only)
  775.  
  776. UseConsts    # 1=use "const" keyword in C
  777.     # 2=use "Const" form even if UseAnyptrMacros=0
  778.     # 0=do not use "const" declarations
  779.     # default=1 if AnsiC=1 or C++=1
  780.  
  781. UseUndef    # 1=use "#undef" when #defines go out of scope
  782.     # 0=do not use "#undef", default=1.
  783.  
  784. StoreFileNames    # 1=store file names associated with file vars
  785.     # 0=let the system record the name
  786.     # default=1 in Turbo Pascal, 0 otherwise.
  787.  
  788. SqueezeSubr # 1 or default=squeeze subranges into char, etc.
  789.     # 0=use only short's and int's (or long's).
  790.  
  791. UseEnum # 1=use C "enum" types
  792.     # 0=use integers for enumerations
  793.     # default=1 unless AnsiC=0
  794.  
  795. SqueezeEnum # 1=use bytes for small enums, when UseEnum=0
  796.     # 0=use shorts always
  797.     # default=0 for HP Pascal, 1 otherwise.
  798.  
  799. CompEnums    # 1=okay to compare enums directly
  800.     # 0=cast enums to ints for comparisons
  801.     # default=0 unless AnsiC=1.
  802.  
  803. PreserveTypes    # 1 or default=use typedef for all Pascal types
  804.     # 0=don't unnecessarily use typedef
  805.     # (Can be turned on/off for different decls)
  806.  
  807. PreservePointers    # 1=override PreserveTypes for pointer types
  808.     # 0 or default=use in-line "*" notation
  809.     # -1=same as PreserveTypes
  810.  
  811. PreserveStrings # 1=override PreserveTypes for string types
  812.     # 2=use typedef for strings w/non-const lengths
  813.     # 0=use in-line "[]" notation for strings
  814.     # -1 or default=same as PreserveTypes
  815.  
  816. Packing # 1 or default=fully packed records and arrays
  817.     # 0=ignore "packed" keyword
  818.     # 2=pack to bytes, but not bits
  819.  
  820. PackSigned    # 1=implement packed arrays of signed values
  821.     # 0=only pack unsigned arrays
  822.     # default=1
  823.  
  824. SkipIndices # Number of vacant array indices allowable,
  825.     # default 0.    If 1, then array [1..10] is
  826.     # converted to array [11], but array [2..10]
  827.     # would be converted as array [9] with offsets.
  828.  
  829. OffsetForLoops    # 1=adjust loops where index is always used
  830.     #    as, e.g., i-1 by offsetting the index.
  831.     # 0=leave them alone.    Default=1.
  832.  
  833. ForEvalOrder    # 1=in for x:=y to z, force eval of y before z.
  834.     # 0 or default=evaluation order unimportant.
  835.  
  836. StringLeaders    # Number of leading '>' placeholder characters
  837.     # that can be prepended to a string literal.
  838.     # Default is 3.
  839.  
  840. StringCeiling    # Maximum size for strings. Default is 255.
  841.     # If > 255, allows some "slop" in strings.
  842.     # If < 255, shortens large strings.
  843.  
  844. StringDefault    # Size of string declared without [ ] brackets.
  845.     # Default is 255.
  846.  
  847. StringTruncLimit    # Minimum size of strings for which a warning
  848.     # is generated when assigned possibly longer
  849.     # strings.    These are assignments to check if
  850.     # Turbo-like truncation is necessary.
  851.     # Default is 80 for Turbo, 0 otherwise.
  852.  
  853. LongStringSize    # Smallest string which can be considered
  854.     # "arbitrarily long"; default=StringCeiling.
  855.  
  856. KeepNulls    # 1=try to preserve null (#0) chars in strings
  857.     # 0 or default=ignore them (but warn)
  858.  
  859. HighCharBits    # 1=convert "ch >= 128" to "(ch & ~127) != 0"
  860.     # 2=convert "ch >= 127" to "(ch & 128) != 0"
  861.     # 0=do not use bit ops for high characters
  862.     # default=1 only if ch's signed-ness is unknown
  863.  
  864. StaticFunctions # 1 or default=use "static" for private funcs
  865.     # 0=don't create static functions
  866.  
  867. StaticVariables # 1 or default=use "static" for private vars
  868.     # 0=don't create static global vars
  869.  
  870. NeedStatic    # Names of functions or variables which
  871.     # need to be declared static despite
  872.     # StaticFunctions=0 or StaticVariables=0.
  873.  
  874. AlwaysCopyValues    # 1=always make a local copy of a parameter
  875.     # 0 or default=only if it appears to be changed
  876.  
  877. VoidArgs    # 1=write "f(void)" for funcs with no args
  878.     # 0=write "f()" for funcs with no args
  879.     # default=depends on AnsiC and C++
  880.  
  881. Prototypes    # 1=write "f(int a, int b)"
  882.     # 2=write "f(int, int)" when possible
  883.     # 0=write "f(a, b) \n int a, b;"
  884.     # default=depends of AnsiC and C++
  885.  
  886. FullPrototyping # 1 or default=use prototypes everywhere
  887.     # 0=use prototypes only for forward/extern
  888.  
  889. ProcPtrPrototypes    # 1 or default=use prototypes for C func ptrs
  890.     # 0=always write, e.g., int (*fp)();
  891.  
  892. CastArgs    # 1=include argument casts if needed: (double)i
  893.     # 0=do not include argument casts (dangerous!)
  894.     # default=do not cast if func has a prototype
  895.  
  896. CastLongArgs    # 1=include int/long argument casts if needed
  897.     # 0=do not cast between int and long
  898.     # default=follow CastArgs
  899.  
  900. PromoteArgs # 1=promote e.g. short to int in prototypes
  901.     # 0=do not promote in prototypes
  902.     # default=only when prototyping forwards only
  903.  
  904. FixPromotedArgs # 1=attempt to handle "&" of promoted args
  905.     # 2=warn in this case but do not try to fix
  906.     # 0=leave promoted args alone
  907.     # default=1
  908.  
  909. PromoteEnums    # 1=promote enum to int when promoting args
  910.     # 0=leave enums alone in prototypes
  911.     # default=only when UseEnum=0
  912.  
  913. StaticLinks # 1=use _PROCEDURE (ProcTypeName) for proc ptrs
  914.     # 2=use _PROCEDURE but assume only global procs
  915.     # 0=use C function pointers, no static links
  916.     # default=1 in HP, 0 in Turbo Pascal
  917.  
  918. VarStrings    # 1=full support for "var s:string" params
  919.     #    and HP Pascal's strmax function
  920.     # 0=assume all var s:string's are string[255]
  921.     # default=0 always; may need 1 for some
  922.     #    HP Pascal programs
  923.  
  924. VarFiles    # 1 or default="var f : file" params use &
  925.     # 0=pass FILE *'s by value; must not open or
  926.     #    close the file within the procedure
  927.  
  928. AddrStdFiles    # 1=okay to write "&stdout", etc.
  929.     # 0 or default=not okay
  930.  
  931. CopyStructFuncs # 1=write "temp = f(); temp.field"
  932.     # 0=write "f().field"
  933.     # default=1 unless AnsiC=1
  934.  
  935. Atan2    # 1=convert arctan(a/b) to atan2(a,b)
  936.     # 0 or default=convert it to atan(a/b)
  937.  
  938. BitwiseMod    # 1 or default=convert x mod 16 to x&15
  939.     # 0=convert x mod 16 to x%16
  940.  
  941. BitwiseDiv    # 1=convert x div 16 to x>>4
  942.     # 0 or default=convert x div 16 to x/16
  943.  
  944. AssumeBits    # 1=assume args of funcs like na_po2 are
  945.     #    within reasonable range; write 1<<x.
  946.     # 0 or default=no assumptions; write na_po2
  947.  
  948. AssumeSigns # 1 or default=for e.g. na_lsl, assume
  949.     #    "x" is positive, "-x" is negative.
  950.     # 0=no assumptions (except for constants!)
  951.  
  952. AllocZeroNil    # 1=na_new(p,0) must set p to nil
  953.     # 0 or default=not necessary
  954.     # 2=not necessary, but print a warning
  955.  
  956. PrintfOnly    # 1=don't use puts, putc, etc., in WRITE
  957.     # 0=use puts, etc., as well as printf
  958.     # default=a pleasing compromise
  959.  
  960. MixWritelns # 1 or default=writeln;writeln=>printf("\n\n")
  961.     # 0=don't mix consecutive writeln stmts
  962.  
  963. IntegerWidth    # Default field width for writing integers.
  964.     # Default is 1 for Turbo, 12 for HP.
  965.  
  966. RealWidth    # Default field width for writing reals.
  967.     # Default is 12.
  968.  
  969. FormatStrings    # 1=full support for write(string:width)
  970.     # 0 or default=':width' only stretches
  971.  
  972. WhileFgets    # 1 or default=while (fgets(...)) { ... }
  973.     # 0=while (!eof(...)) { fgets(...); ... }
  974.  
  975. UseGets # 1 or default=use gets to read string[255]
  976.     # 0=always use fgets (with length checking)
  977.  
  978. NewLineSpace    # 1=convert \n to ' ' in read(ch)
  979.     # 0=leave newlines alone reading characters
  980.     # default=0 in Turbo Pascal, 1 otherwise
  981.  
  982. BuildReads    # 1=combine x:=f^;get(f) into read(f,x)
  983.     # 2=only for text files and files of char
  984.     # 0=leave it alone; default=1
  985.  
  986. BuildWrites # 1=combine f^:=x;put(f) into write(f,x)
  987.     # 2=only for text files and files of char
  988.     # 0=leave it alone; default=1
  989.  
  990. BinaryMode    # 1 or default=fopen binary files as, say, "rb"
  991.     # 0=fopen binary files as "r"
  992.     # 2=fopen binary files as "r" with a warning
  993.  
  994. ReadWriteOpen    # 1=RESET/REWRITE open binary files read/write
  995.     # 0=RESET opens read-only, REWRITE write-only
  996.     # 2=Open all files (text and binary) read/write
  997.     # default=1 in Turbo, 0 otherwise.
  998.  
  999. OpenMode    # fopen mode string to use for Pascal open
  1000.     # statement.    Use a+ if that mode allows
  1001.     # seeking.    Default=build out of ANSI modes
  1002.  
  1003. FileNameFilter    # Name of a function to call which converts
  1004.     # a file name into a form usable by fopen;
  1005.     # if name must be changed this should return
  1006.     # a pointer to a static buffer.
  1007.     # Not used for constant names.    "0"=no filter.
  1008.     # default=P_trimname for Oregon/Berk, else 0
  1009.  
  1010. LiteralFiles    # 0=nameless rewrite(f) generates a temp file
  1011.     # 1=nameless rewrite(f) uses "f" as file name
  1012.     # 2=like 1 only if f appeared in "program" stmt
  1013.     # default=2 for Berkeley, else 0.
  1014.  
  1015. LiteralFile # A file variable which should be treated as
  1016. LiteralFile # if LiteralFiles=1.    If LiteralFiles=2, files
  1017. LiteralFile # in program header are added to this list.
  1018.  
  1019. StructFiles # 1="file of x" produces a struct with buffer
  1020.     #    and file-name included.
  1021.     # 0 or default=use native FILE *'s, with
  1022.     #    extra variables to hold buffer and name.
  1023.  
  1024. StructFile    # A file variable which should be treated as
  1025.     # if StructFiles=1.
  1026.  
  1027. FullStrWrite    # 1=full implementation of strwrite(s,i,j,...)
  1028.     # 0=ignore "j" variable and other issues
  1029.     # default=assign "j", assume not mid-string
  1030.     # 2=like default, but issue a warning
  1031.  
  1032. FullStrRead # 1 or default=full impl of strread using "%n"
  1033.     # 0=fake the value of "j"
  1034.     # 2=like default, but issue a warning
  1035.  
  1036. SetBits # Number of bits to use in each "long" of a set
  1037.     # default=LongSize if defined, else 32
  1038.  
  1039. DefaultSetSize    # Default size of un-typed set constants;
  1040.     # default default=256 for VAX, else 8192
  1041.  
  1042. SmallSetConst    # 0=write small-set literals like "1<<2|1<<4"
  1043.     # 1=write them like "0x14"
  1044.     # 2=write them like "20"
  1045.     # -1=do not use small-sets at all
  1046.     # default=-1 if SetBitsName defined, else 1
  1047.  
  1048. BigSetConst # (analogous to SmallSetConst for big sets)
  1049.  
  1050. LeLeRange    # 1=write "j in [1..10]" as "1<=j && j<=10"
  1051.     # 0 or default=write ... as "j>=1 && j<=10"
  1052.  
  1053. UnsignedTrick    # 1 or default=write "(unsigned)i <= 10"
  1054.     # 0=leave "i >= 0 && i <= 10" alone
  1055.  
  1056. UseIsAlpha    # 1 or default=use "isalpha", "isdigit", etc.
  1057.     # 0=use plain comparisons
  1058.  
  1059. UseIsSpace    # 1=convert "c==' '" to "isspace(c)"
  1060.     # 0 or default=leave it alone
  1061.  
  1062. UseStrncmp    # 1=use strncmp to compare packed array of char
  1063.     # 0=use memcmp, same as for all other arrays
  1064.     # default=1
  1065.  
  1066.  
  1067.  
  1068. # NAMING CONVENTIONS
  1069.  
  1070. CodeFileName    %Rs.c    # Name of .c output file for a program,
  1071.     # %s=input file name.
  1072.  
  1073. ModuleFileName    %_S.c    # Name of .c output file for a module,
  1074.     # %s=input file name, %S=module name.
  1075.  
  1076. HeaderFileName    %_S.h    # Name of .h output file for a module,
  1077.     # %s=input file name, %S=module name.
  1078.  
  1079. HeaderFileName2 # If defined, different format to use when
  1080.     # generating #include's, otherwise same.
  1081.     # May be quoted as in IncludeFrom.
  1082.  
  1083. SelfIncludeName # Format to apply after HeaderFileName to use
  1084.     # when a module includes its own header file.
  1085.  
  1086. LogFileName %RS.log # Name of log file name for -V mode.
  1087.     # %s=input file name, %S=output file name.
  1088.  
  1089. IncludeFileName # Format for translating Pascal include-file
  1090.     # names.
  1091.  
  1092. SymCase # 1 or default=preserve case of Pascal idents,
  1093.     # 0=convert all Pascal idents to lower case
  1094.  
  1095. SymbolFormat    # Format for C identifiers derived from
  1096.     # Pascal ones; default=%s.    The following
  1097.     # specific formats override this one.
  1098.     # %s=original Pascal identifier,
  1099.     # %S=name of parent module or procedure.
  1100.  
  1101. ConstFormat # Format for #define names derived from
  1102.     # Pascal consts.    (Often used: %^s)
  1103.  
  1104. ModuleFormat    # Format for program and module names.
  1105.  
  1106. FunctionFormat    # Format for procedure and function names.
  1107.  
  1108. VarFormat    # Format for variable names.
  1109.  
  1110. TypeFormat    # Format for typedef names.
  1111.  
  1112. FieldFormat # Format for fields of records; %S=record type.
  1113.  
  1114. EnumFormat    # Format for enumeration constants;
  1115.     # %s=enum type name.    If not specified,
  1116.     # default is ConstFormat, else SymbolFormat.
  1117.  
  1118. ReturnValueName Result    # Return value holding variable; [%s=func name]
  1119. UnitInitName    _%s_init    # Turbo Pascal unit initializer; %s=unit name
  1120. HSymbolName %s_H    # Name of "_H" symbol, if any; %s=unit name
  1121. GSymbolName %s_G    # Name of "_G" symbol; [%s=unit name]
  1122. StringMaxName    MAX_%s    # VAR STRING hidden variable; %s=param name
  1123. ArrayMinName    %s_LOW    # Lower bound hidden variable; %s=param name
  1124. ArrayMaxName    %s_HIGH # Upper bound hidden variable; %s=param name
  1125. CopyParName %s_ # Alternate name for parameter %s
  1126. StaticLinkName    LINK    # Static link parameter name; [%s=func name]
  1127. LocalVarsStruct LOC_%s    # Name of struct type for locals; %s=func name
  1128. LocalVarsName    V    # Name of struct var for locals; [%s=func name]
  1129. FwdStructName    %s    # Name of forward-used structs; %s=type name
  1130.     # (may simply be %s if you don't mind confusion)
  1131. EnumListName    %s_NAMES    # Name of array to hold names for enum %s
  1132. UnionName    UU    # Name of variant union
  1133. UnionPartName    %s    # Name of variant element; %s=tag value name
  1134. FakeStructName    _REC_%s # Name of "temporary" structs; %s=base name
  1135. LabelName    _L%s    # Name of GOTO label; %s=label name
  1136. LabelVarName    _JL%s    # Name of GOTO label jmp_buf variable; %s=label
  1137. TempName    TEMP%s    # Name of general temporary vars; %s=unique id
  1138. DummyName    DUMMY%s # Name of throwaway "dummy" vars; %s=unique id
  1139. WithName    WITH%s    # Name of WITH statement temp ptr; %s=unique id
  1140. ForName FORLIM%s    # Name of FOR statement temp limit; %s=unique id
  1141. PtrName PTR%s    # Name of NIL-checking temp ptr; %s=unique id
  1142. StringName    STR%s    # Name of temporary string vars; %s=unique id
  1143. SetName SET%s    # Name of temporary set vars; %s=unique id
  1144. FNVarName    %s_NAME # Name of file-name vars; %s=file var
  1145. FNSizeName    _FNSIZE # Maximum length of file name (macro or integer)
  1146.  
  1147. AlternateName1    %s_ # Way to produce a second C symbol for a Pascal
  1148.     # symbol, where original symbol was %s. Default
  1149.     # is to use AlternateName with %d=1.
  1150.  
  1151. AlternateName2    # A second alternate for %s.
  1152.  
  1153. AlternateName    # A %d'th name for %s.  %s and %d may appear in
  1154.     # either order. Default is %d applications of
  1155.     # AlternateName1.
  1156.  
  1157. ExportSymbol    # Name of exported symbol %s.    E.g.: "P_%s"
  1158.     # Default=%s, i.e., don't mess with the name.
  1159.     # %s is Pascal symbol name; %S is module name.
  1160.  
  1161. Export_Symbol    # Exported-symbol format to be used when the
  1162.     # symbol %s contains an '_'.    Default=use
  1163.     # ExportSymbol format for every symbol.
  1164.  
  1165. Alias    # Name of external proc or var; default="%s".
  1166.     # If does not contain a "%s", this simply
  1167.     # renames the next defined symbol of any kind.
  1168.  
  1169. Synonym # Format:    Synonym name = newname
  1170. Synonym # Treat the word "name" in the input file
  1171. Synonym # exactly the same as the keyword or identifier
  1172. Synonym # "newname".    If "newname" is omitted, ignore
  1173. Synonym # the word "name" in the input. For example:
  1174. Synonym # "Synonym andthen = and" creates a keyword;
  1175. Synonym # "Synonym allocmem = getmem" simulates a
  1176. Synonym # built-in function "allocmem" which acts like
  1177. Synonym # Turbo's "getmem"; "Synonym segment" ignores
  1178. Synonym # the word "segment" in the input.
  1179.  
  1180. NameOf    # Format:    NameOf name = newname
  1181. NameOf    # Rename the specified symbol.    The name may
  1182. NameOf    # be of the form "modulename.name" or
  1183. NameOf    # "procname.name"; otherwise, all usages of
  1184. NameOf    # the symbol are renamed.
  1185.  
  1186. VarMacro    # Format:    VarMacro varname = C-expression
  1187. VarMacro    # Must come before the declaration of variable
  1188. VarMacro    # "varname".    Causes all references to the
  1189. VarMacro    # variable to use the C expression instead.
  1190. VarMacro    # In the expr, all C operators are supported;
  1191. VarMacro    # all identifier names are used verbatim.
  1192. VarMacro    # Also works for Turbo Pascal typed-constants.
  1193. VarMacro    # Suppresses declaration of variable unless
  1194. VarMacro    # "varname" appears in the C expression.
  1195. VarMacro    # Simple algebra is used for assignments to
  1196. VarMacro    # vars with expr definitions: if X -> 2*V+1,
  1197. VarMacro    # then "X:=Y" translates to "V=(Y-1)/2".
  1198.  
  1199. ConstMacro    # Analogous to VarMacro, but for constants and
  1200. ConstMacro    # enumeration constants.    In an enum constant,
  1201. ConstMacro    # if the C-expression is a single name the
  1202. ConstMacro    # result is equivalent to Alias or NameOf.
  1203.  
  1204. FieldMacro    # Format:    FieldMacro rec.field = C-expression
  1205. FieldMacro    # where "rec" is a record type name which
  1206. FieldMacro    # also appears in the C-expression. For
  1207. FieldMacro    # example: FieldMacro obj.foo = bar(obj) causes
  1208. FieldMacro    # the field "foo" of record type "obj" to be
  1209. FieldMacro    # referenced through the function or macro
  1210. FieldMacro    # "bar", rather than using dot notation.
  1211.  
  1212. FuncMacro    # Format:    FuncMacro foo(a,b,c) = C-expression
  1213. FuncMacro    # where "a", "b", "c" are arbitrary arg names
  1214. FuncMacro    # also appearing in the C-expression.    "Foo"
  1215. FuncMacro    # is a procedure or function defined or to be
  1216. FuncMacro    # defined in the code, or predefined in Pascal.
  1217. FuncMacro    # E.g.: FuncMacro PtInRect(p,r) = PtInRect(p,&r)
  1218. FuncMacro    # causes "r" to be treated as a VAR param even
  1219. FuncMacro    # though otherwise it would be passed by value.
  1220.  
  1221. WarnMacros    # 1=warn if Var/Const/Field/FuncMacro not used
  1222.     # 0 or default=don't care.
  1223.  
  1224. SpecialMalloc    # Format:    SpecialMalloc x.y.z = funcname
  1225. SpecialMalloc    # where x is a type name, and y and z are
  1226. SpecialMalloc    # optional variant tags for records.    The
  1227. SpecialMalloc    # statement "new(p,y,z)" where p is a pointer
  1228. SpecialMalloc    # to x is converted to p = funcname().
  1229.  
  1230. SpecialFree # Like SpecialMalloc, but defines a special
  1231. SpecialFree # function for freeing things of a given type.
  1232.  
  1233. SpecialSizeOf    # Like SpecialMalloc, but defines a name or
  1234. SpecialSizeOf    # other integer-valued C expression which is
  1235. SpecialSizeOf    # the size of an object of the given type.
  1236.  
  1237. AvoidName    getc    # If any of these names appear in the code,
  1238. AvoidName    putc    # use an alternate name so as to avoid
  1239. AvoidName    getchar # library conflicts.
  1240. AvoidName    putchar
  1241. AvoidName    feof    # These are typically macro names whose use
  1242. AvoidName    ferror    # would be disasterous under any
  1243. AvoidName    clearerr    # circumstances.
  1244. AvoidName    fileno
  1245. AvoidName    BUFSIZ    NULL    EOF
  1246. AvoidName    stdin    stdout    stderr
  1247. AvoidName    true false assert
  1248. AvoidName    Anyptr Void Char PP PV
  1249. AvoidName    Signed Const Volatile Register Static Local Inline
  1250. AvoidName    cdecl far near huge
  1251. AvoidName    isalpha isupper islower isdigit isxdigit isspace ispunct
  1252. AvoidName    isalnum isprint isgraph iscntrl isascii toascii
  1253. AvoidName    toupper tolower
  1254. AvoidName    LINK SEXT
  1255.  
  1256. AvoidGlobalName fopen    # These names should be avoided in global
  1257. AvoidGlobalName fclose    # contexts, but they are okay as local names.
  1258. AvoidGlobalName fseek
  1259. AvoidGlobalName exit    main
  1260. AvoidGlobalName strcpy    strcat
  1261. AvoidGlobalName printf    fprintf sprintf
  1262. AvoidGlobalName scanf    fscanf    sscanf
  1263. AvoidGlobalName malloc    realloc free
  1264. AvoidGlobalName y0 y1 yn j0 j1 jn    # from math.h -- urghhh!
  1265.     # ... we should define lots more of these!
  1266.  
  1267. WarnName    # A similar list of names to leave alone, but
  1268. WarnName    # generate warnings for if they are defined.
  1269.  
  1270. WarnNames    # 1=All vars, consts, types, procs, fields
  1271.     #    defined after this point should generate
  1272.     #    warnings if used.
  1273.     # 0 or default=no warnings for future names
  1274.  
  1275. WarnLibrary # A list of C functions, any calls to which
  1276. WarnLibrary # should generate warnings.
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282. # TARGET LIBRARY
  1283.  
  1284. QuoteIncludes    # 1 or default=write #include "foo.h"
  1285.     # 0=write #include <foo.h>
  1286.  
  1287. IncludeFrom # Names of modules which need special
  1288. IncludeFrom # #include file names.    Formats:
  1289. IncludeFrom # IncludeFrom foo bar.h => #include <bar.h>
  1290. IncludeFrom #    if QuoteIncludes=0 else #include "bar.h"
  1291. IncludeFrom # IncludeFrom foo <bar.h> => #include <bar.h>
  1292. IncludeFrom # IncludeFrom foo "bar.h" => #include "bar.h"
  1293. IncludeFrom # IncludeFrom foo    => no #include at all
  1294. IncludeFrom iodeclarations <p2c/iodecl.h>
  1295. IncludeFrom system
  1296. IncludeFrom printer
  1297. IncludeFrom dos
  1298. IncludeFrom crt
  1299.  
  1300. ImportFrom    # Names of modules whose import text
  1301. ImportFrom    # resides in the specified files.
  1302. ImportFrom    # E.g.: ImportFrom    mymod    /usr/me/mymod.imp
  1303. ImportFrom    # These are the Turbo Pascal standard units
  1304. ImportFrom    system    %H/turbo.imp
  1305. ImportFrom    printer %H/turbo.imp
  1306. ImportFrom    dos %H/turbo.imp
  1307. ImportFrom    crt %H/turbo.imp
  1308. ImportFrom    graph    %H/turbo.imp
  1309.  
  1310. ImportDir    %_s.pas # Search list of other places to look for
  1311. ImportDir    %_s.text    # the module named %s.
  1312. ImportDir    %H/%_s.imp
  1313. ImportDir    %I%_s.p #gs
  1314. ImportDir    %_s.p    #gs
  1315.  
  1316. IncludeDir    %_s # Search list of places to look for the
  1317. IncludeDir    %_s.pas # Pascal include file %s.
  1318. IncludeDir    %_s.text
  1319. IncludeDir    %H/%_s.pas
  1320. IncludeDir    %I%_s.p #gs
  1321. IncludeDir    %_s.p    #gs
  1322.  
  1323. #gs LibraryFile %H/system.imp    # Names of import-text files to search
  1324. LibraryFile mpw.imp # Names of import-text files to search
  1325. LibraryFile # always (as if "-s name" were used).
  1326.  
  1327. StructFunction    sprintf # Names of "structured functions".
  1328. StructFunction    memcpy    memmove
  1329. StructFunction    strcpy    strsub    strrtrim    strrpt
  1330. StructFunction    P_addset    P_addsetr    P_remset
  1331.  
  1332. StrlapFunction    P_setunion    # Names of "structured functions" which
  1333. StrlapFunction    P_setint    # allow duplication of their arguments.
  1334. StrlapFunction    P_setdiff
  1335. StrlapFunction    P_setxor
  1336. StrlapFunction    P_expset    strlower    strupper    strpad
  1337.  
  1338. NoSideEffects    strcmp memcmp # Names of functions which have absolutely
  1339. NoSideEffects    # no side effects on their arguments or
  1340. NoSideEffects    # other global state of the program.
  1341.  
  1342. Deterministic    abs sin cos # Names of functions which satisfy all
  1343. Deterministic    # requirements for NoSideEffects, and
  1344. Deterministic    # additionally compute their result
  1345. Deterministic    # deterministically (and quickly), without
  1346. Deterministic    # any sort of hidden dependencies.
  1347.     # (need many more in this list!)
  1348.  
  1349. LeaveAlone    # Names of library functions which should
  1350. LeaveAlone    # be left alone, rather than translated
  1351. LeaveAlone    # into C equivalents.    (For example, prevents
  1352. LeaveAlone    # converting fwritebytes into C fwrite.)
  1353.  
  1354. HeaderName    <p2c.h> # Name of standard p2c header file
  1355.  
  1356. UCharName    uchar    # Name of a typedef for "unsigned char";
  1357.     # default="char" or "unsigned char".
  1358.  
  1359. SCharName    schar    # Name of a typedef for "signed char";
  1360.     # default="char" or "signed char".
  1361.  
  1362. BooleanName boolean # Name of a typedef for booleans; default=char.
  1363.  
  1364. TrueName    true    # Name of a boolean "true" constant (optional)
  1365. FalseName    false    # Name of a boolean "false" constant (opt.)
  1366.  
  1367. NullName    NULL    # Name of a NULL pointer constant
  1368.  
  1369. ProcTypeName    _PROCEDURE    # Name of procedure-pointer typedef
  1370.  
  1371. EscapeCodeName    P_escapecode    # Names of error-handling variables
  1372. IOResultName    P_ioresult
  1373.  
  1374. ArgCName    P_argc    # Name of global copy of argc
  1375. ArgVName    P_argv    # Name of global copy of argv
  1376.  
  1377. MainName    PASCAL_MAIN # Name of program setup function
  1378.  
  1379. EscapeName    _Escape # Name of error-generation function
  1380.  
  1381. EscIOName    _EscIO    # Name of I/O-error-generation function
  1382.  
  1383. CheckIOName _CHKIO    # Name of I/O-error-checking function
  1384.  
  1385. SetIOName    _SETIO    # Name of I/O-error-setting function
  1386.  
  1387. FileNotFoundName    FileNotFound    # Name or number of "File Not Found" ioresult
  1388.  
  1389. FileNotOpenName FileNotOpen # Name or number of "File Not Open" ioresult
  1390.  
  1391. FileWriteErrorName FileWriteError # Name of num of "File Write Error" ioresult
  1392.  
  1393. BadInputFormatName BadInputFormat # Name or num of "Bad Input Format" ioresult
  1394.  
  1395. EndOfFileName    EndOfFile    # Name or number of "End of File" ioresult
  1396.  
  1397. OutMemName    _OutMem # Name of out-of-memory error function
  1398.  
  1399. CaseCheckName    _CaseCheck    # Name of case-out-of-range error function
  1400.  
  1401. NilCheckName    _NilCheck # Name of nil-pointer error function
  1402.  
  1403. SetBitsName # Name of macro defined equal to SetBits
  1404.     # default=compile SetBits in-line
  1405.  
  1406. SprintfValue    # 1=sprintf() returns its first argument
  1407.     # 0=sprintf() returns a character count
  1408.     # default=don't know (unless AnsiC=1)
  1409.     # -2=don't know regardless of AnsiC
  1410.     # 2=don't use sprintf in expressions
  1411.  
  1412. SprintfName # If SprintfValue != 1, this is the name
  1413.     # of a sprintf-like function which returns
  1414.     # its first argument.    Default=no such
  1415.     # function exists.
  1416.  
  1417. MemCpyName    # Methods known: "memcpy", "bcopy"
  1418.     # default=according to Target, default "memcpy"
  1419.  
  1420. RoundName    # Name of function or macro for rounding
  1421.     # a real to an integer. Precede name with
  1422.     # a '*' if it is a macro that evaluates its
  1423.     # arguments more than once. Default=do it
  1424.     # by hand.
  1425.  
  1426. DivName # Name of function or macro for Pascal integer
  1427.     # division where numerator may be negative.
  1428.     # Use '*' if macro; default=use regular '/'.
  1429.  
  1430. ModName # Name of function or macro for Pascal integer
  1431.     # modulo where numerator may be negative.
  1432.     # Use '*' if macro; default=use regular '%'.
  1433.  
  1434. RemName # Name of function or macro for VAX Pascal
  1435.     # REM where numerator or denominator may be
  1436.     # negative. Use '*' if macro; default=use MOD.
  1437.  
  1438. AbsName labs    # Name of function for computing ABS of a
  1439.     # "long" value. Precede with '*' if a
  1440.     # macro.    Default=by hand, or "labs" in AnsiC.
  1441.  
  1442. OddName # Name of a macro for computing ODD of an
  1443.     # integer.    Default=x&1.
  1444.  
  1445. EvenName    # Name of a macro for computing NOT ODD of
  1446.     # an integer.    Default=!odd(x).
  1447.  
  1448. SwapName    _swap    # Name of Turbo-like swap() function.
  1449.  
  1450. StrCpyLeft    # 1 or default=strcpy(s1,s2) works even if
  1451.     # s1 and s2 overlap, provided s1 <= s2.
  1452.     # 0=strcpy(s1,s2) does not allow overlap.
  1453.  
  1454. StrCICmpName    strcicmp    # Name of a strcicmp-like function; no default
  1455. StrSubName    strsub    # Name of a strsub-like function; no default
  1456. StrPosName    strpos2 # Name of a strpos2-like function; no default
  1457. StrDeleteName    strdelete    # Name of a strdelete-like function; no default
  1458. StrInsertName    strinsert    # Name of a strinsert-like function; no default
  1459. StrMoveName strmove # Name of a strmove-like function; no default
  1460. StrLTrimName    strltrim    # Name of a strltrim-like function; no default
  1461. StrRTrimName    strrtrim    # Name of a strrtrim-like function; no default
  1462. StrRptName    strrpt    # Name of a strrpt-like function; no default
  1463. StrPadName    strpad    # Name of a pad-like function; no default
  1464.  
  1465. MallocName    Malloc    # Name of a malloc-like function; default=malloc
  1466. FreeName    Free    # Name of a dispose-like function; default=free
  1467. FreeRvalueName    FreeR    # Name of a free-like function; default=free
  1468.  
  1469. RandRealName    _randreal    # Name of a Turbo "random" function; no default
  1470. RandIntName _randint    # Name of a Turbo "random()" function; no def
  1471. RandomizeName    _randomize    # Name of a Turbo "randomize" procedure
  1472.  
  1473. SkipSpaceName    _skipspaces # Name of a Turbo seekeof/seekeoln skipper
  1474.  
  1475. ReadlnName    # Name of function or macro to skip past eoln.
  1476.     # Special names: fgets=use fgets with dummy var
  1477.     #    scanf=use scanf/fscanf
  1478.     # Default=use whichever method works out best
  1479.  
  1480. FreopenName # Name of function or macro that acts like
  1481.     # freopen(n,m,f), but if f==NULL acts like
  1482.     # fopen(n,m).    Default=do it by hand.
  1483.     # "fopen"=assume not reopening files.
  1484.     # "fclose"=fclose first, then fopen.
  1485.  
  1486. EofName P_eof    # Name of "feof" with Pascal semantics.
  1487. EolnName    P_eoln    # Name of "eoln" function.
  1488. FilePosName ftell    # Name of "filepos" function.
  1489. MaxPosName    P_maxpos    # Name of "maxpos" function.
  1490.  
  1491. SetUnionName    P_setunion    # Name of a set "+" function; no default
  1492. SetIntName    P_setint    # Name of a set "*" function; no default
  1493. SetDiffName P_setdiff    # Name of a set "-" function; no default
  1494. SetXorName    P_setxor    # Name of a set "/" function; no default
  1495. SetInName    P_inset # Name of a set "IN" function; no default
  1496. SetAddName    P_addset    # Name of a set "a:=a+[x]" function; no default
  1497. SetAddRangeName P_addsetr    # Name of a set "a:=a+[x..y]" function; no def
  1498. SetRemName    P_remset    # Name of a set "a:=a-[x]" function; no default
  1499. SetEqualName    P_setequal    # Name of a set "=" function; no default
  1500. SubSetName    P_subset    # Name of a set "<=" function; no default
  1501. SetCopyName P_setcpy    # Name of a set ":=" function; no default
  1502. SetExpandName    P_expset    # Name of small-set-to-set expander; no default
  1503. SetPackName P_packset    # Name of set-to-small-set packer; no default
  1504.  
  1505. SignExtendName    SEXT    # Name of macro to sign-extend a number.
  1506.  
  1507. GetBitsName *P_getbits_%s # Name of family of array-unpacking functions.
  1508.     # Precede name with '*' if a macro. %s will
  1509.     # expand to S (for signed) or U (for unsigned),
  1510.     # followed by B (big array) or S (small array).
  1511.  
  1512. PutBitsName *P_putbits_%s # Name of family of functions which 'OR' a
  1513.     # value into an element of a packed array.
  1514.     # %s expands to S or U, followed by B or S.
  1515.     # Use '*' if macro. Default=use StoreBits.
  1516.  
  1517. ClrBitsName *P_clrbits_%s # Name of family of functions which zero an
  1518.     # element of a packed array.    %s expands
  1519.     # to B or S only.    Use '*' if macro.
  1520.     # Default=use StoreBits.
  1521.  
  1522. StoreBitsName    # Name of a family of functions or macros
  1523.     # which act just like PutBits, but overwrite
  1524.     # the array element rather than OR'ing.
  1525.     # Default=use ClrBits followed by PutBits.
  1526.     # At least StoreBits or both PutBits and
  1527.     # ClrBits must be defined.
  1528.  
  1529. DeclBufName FILEBUF # Name of a macro for declaring the file
  1530.     # buffer for a file using GET and PUT.
  1531.  
  1532. DeclBufNCName    FILEBUFNC    # Name of a DeclBufName-like macro with two
  1533.     # arguments (no storage class), in case your
  1534.     # compiler can't handle null macro arguments.
  1535.  
  1536. BufferedFile    # Names of file variables that use GET/PUT/^
  1537. BufferedFile    # notation instead of READ/WRITE notation.
  1538. BufferedFile    # Mostly useful for globals; locals are
  1539. BufferedFile    # detected automatically.    May be a var name,
  1540. BufferedFile    # field name, proc.var, type.field, or
  1541. BufferedFile    # "1"=use buffers for all files.
  1542.  
  1543. UnBufferedFile    # Names of files that will not be buffered,
  1544. UnBufferedFile    # even if they would otherwise be.    Syntax
  1545. UnBufferedFile    # same as for BufferedFile.
  1546.  
  1547. ResetBufName    RESETBUF    # Name of a macro for setting up a file
  1548.     # buffer in "read" mode.    (For RESET.)
  1549.  
  1550. SetupBufName    SETUPBUF # Name of a macro for setting up a file
  1551.     # buffer in read/write mode.    (For OPEN, SEEK.)
  1552.  
  1553. GetFBufName GETFBUF # Name of a macro for accessing a file
  1554.     # buffer using "file^" notation.
  1555.  
  1556. GetName GET # Name of a macro for advancing
  1557.     # to the next element of an input file.
  1558.  
  1559. PutFBufName PUTFBUF # Name of a macro for storing an element
  1560.     # of a file using "file^" notation.
  1561.  
  1562. PutName PUT # Name of a macro for advancing
  1563.     # to the next element of an output file.
  1564.  
  1565. CharGetFBufName P_peek    # A special GetFBuf for text and files of char.
  1566.  
  1567. CharGetName getc    # A special Get for text and files of char.
  1568.  
  1569. CharPutFBufName CPUTFBUF    # A special PutFBuf for text and files of char.
  1570.  
  1571. CharPutName CPUT    # A special Put for text and files of char.
  1572.  
  1573. ArrayGetFBufName    AGETFBUF # A special GetFBuf for files of arrays.
  1574.  
  1575. ArrayGetName    # A special Get for files of arrays.
  1576.  
  1577. ArrayPutFBufName    APUTFBUF # A special PutFBuf for files of arrays.
  1578.  
  1579. ArrayPutName    # A special Put for files of arrays.
  1580.  
  1581. EofBufName    BUFEOF    # Name of a macro for "eof" of a buffered file.
  1582.  
  1583. FilePosBufName    BUFFPOS # Name of a macro for buffered "filepos".
  1584.  
  1585.  
  1586.  
  1587. # CHECKING
  1588.  
  1589. CaseCheck    # 1=check CASE statements without OTHERWISE
  1590.     # 0 or default=skip CASE stmt if out of range
  1591.     # 2=according to $range$ directives
  1592.  
  1593. ArrayCheck    # 1=check array bounds
  1594.     # 0 or default=do not check array bounds
  1595.     # 2=according to $range$ directives
  1596.     #    (not yet implemented)
  1597.  
  1598. NilCheck    # check pointer dereferences (0, 1, or 2)
  1599.  
  1600. RangeCheck    # enable other range checking (0, 1, or 2):
  1601.     #    string indexing, ...?
  1602.     #    (not yet implemented)
  1603.  
  1604. MallocCheck # 1=check if malloc returns NULL
  1605.     # 0 or default=assume malloc never returns NULL
  1606.     # (often used with MallocName; see above)
  1607.  
  1608. CheckFileOpen    # 1 or default=check for errors during open,
  1609.     # 0=assume file opens successfully
  1610.     # 2=check only when $iocheck off$ or {$I-}
  1611.  
  1612. CheckFileIsOpen # 1=check for "file not open" error,
  1613.     # 0 or default=eof, etc., assume file is open
  1614.     # 2=check only when $iocheck off$ or {$I-}
  1615.  
  1616. CheckFileWrite    # 1=check for errors during write
  1617.     # 0=ignore write errors
  1618.     # 2 or default=only when $iocheck off$ or {$I-}
  1619.  
  1620. CheckReadFormat # 1=check for "bad format" errors during read
  1621.     # 0=ignore read format errors
  1622.     # 2 or default=only when $iocheck off$ or {$I-}
  1623.  
  1624. CheckFileEOF    # 1=check for "past EOF" errors reading files
  1625.     # 0=ignore file EOF errors
  1626.     # 2 or default=only when $iocheck off$ or {$I-}
  1627.  
  1628. CheckStdinEOF    # 1=check for "past EOF" errors reading stdin
  1629.     # 0=ignore stdin EOF errors
  1630.     # 2 or default=only when $iocheck off$ or {$I-}
  1631.  
  1632. CheckFileSeek    # 1=check for errors during seek
  1633.     # 0=ignore seek errors
  1634.     # 2 or default=only when $iocheck off$ or {$I-}
  1635.  
  1636.  
  1637.  
  1638.  
  1639. #Include %H:loc.p2crc    # Include any local modifications to this file.
  1640.  
  1641.  
  1642.  
  1643. # End of p2crc
  1644.